Nutanix Cloud Clusters on AWSの仮想マシンからインターネットへ接続してみた
こんにちは、AWS事業本部 コンサルティング部の荒平(@0Air)です。
NC2 on AWSの仮想マシンがインターネットへ接続したいということはしばしばあると思います。
VPCのPublic Subnet経由の場合と、Private Subnet経由の場合の2パターンに分けて紹介します。
ざっくり手順は、以下の通りです:
- Nutanix コンソールにて、AWSのサブネットとAHVサブネットを紐付ける
- 仮想マシンにNICを追加する
- (パブリックサブネットの場合)パブリックIPアドレスを割り当てる
構成図
本エントリの構成図です。
EC2ベアメタルインスタンスに設定されたUser VM用のENIを経由して通信を行います。
Network Configuration
まず初めに、AWSのサブネットとNC2 on AWSのサブネットを紐付ける作業が必要です。
トップメニューの「Settings」から、「Network Configuration」>「Create Subnet」をクリックします。
サブネット名を入力し、AWSのサブネットを選択します。
ここで選択したサブネットによって、パブリックサブネット用の設定か、プライベートサブネット用の設定に分岐します。
「IP Address Pools」は、開始IPと終了IPを指定して、プールを設定することができます。
DHCPサーバの指定がある場合は設定して、「Save」をクリックします。
仮想マシンにNICを設定する
続いて、仮想マシンに払い出したサブネットに紐付くNICを設定します。
仮想マシンをダブルクリックするか、選択した状態で「Update」メニューを選択すると構成画面が開きます。
「Add New NIC」をクリックし、ネットワークカードを追加します。
サブネット名と、NIC追加後のステータス、IPアドレスのタイプを選択します。
追加後のステータスは「Connected」「Disconnected」が選べ、接続状態にしておく場合は前者を選びます。
また、IPアドレスはDHCPか固定割当てが選べます。
その後、NICが認識されるためOS側で設定を行います。
画面は割愛しますが、ESXi上の仮想マシンと挙動は同じようです。
ESXiではネットワークアダプターをE1000eやvmxnet3の選択ができましたが、AHVではVirtIO Ethenet Adapterが自動で認識されます。
Public Subnet経由での接続の場合
仮想マシンのNICをパブリックサブネットに設定した場合は、IPアドレスがないためインターネット通信ができません。
インターネット向けのcurlやyum updateは応答しません。
NC2がデフォルトで作成するサブネットはIPアドレス自動割り当てがないため、Elastic IPアドレスをネットワークインターフェイスに設定することでインターネット通信を行います。
このとき、プライベートIPアドレスを指定する必要があるため、DHCPで割り当てた場合はPrismから仮想マシンのIPアドレスを確認しておきます。
インスタンスのIPに対してElastic IPを紐付けることはできません。( There are multiple interfaces attached to instance 'i-0xxxxxxxxxxxxxx'. Please specify an interface ID for the operation instead.
とエラーが出ます)
ENIにEIPを紐付けたら、インターネットへの疎通確認をします。
無事にインターネットへ出ることができました。
Private Subnet経由での接続の場合
仮想マシンのNICをプライベートサブネットに設定した場合は、NC2が自動で生成したNAT Gatewayを経由してインターネット通信を行います。
AWSコンソール側の特別な操作は不要です。(意図的にデフォルトから変更している場合は、その設定が必要です)
こちらも無事にインターネットへ出ることができました。
(実験と直接関係ないですが、EC2の性能のためか、Ping応答のレイテンシーがかなり小さい気がします)
おわりに
AHV上の仮想マシンからインターネットへ接続するパターンを試してみました。
パブリックサブネットに仮想マシンを置くことはそこまで頻繁にないと思いますが、覚えておくと良さそうです。
このエントリが誰かの助けになれば幸いです。
それでは、AWS事業本部 コンサルティング部の荒平(@0Air)がお送りしました!